package config

type OrderSrvInfo struct {
	Host string `mapstructure:"host" json:"host"`
	Port int    `mapstructure:"port" json:"port"`
	Name string `mapstructure:"name" json:"name"`
}

type JWTConfig struct {
	SigningKey string `mapstructure:"key" json:"key"`
}

type AliSmsConfig struct {
	ApiKey     string `mapstructure:"key" json:"key"`
	ApiSecrect string `mapstructure:"secrect" json:"secrect"`
}

type ConsulConfig struct {
	Host string `mapstructure:"host" json:"host"`
	Port int    `mapstructure:"port" json:"port"`
}

type RedisConfig struct {
	Host   string `mapstructure:"host" json:"host"`
	Port   int    `mapstructure:"port" json:"port"`
	Expire int    `mapstructure:"expire" json:"expire"`
}

type ServerConfig struct {
	Name         string       `mapstructure:"name" json:"name"`
	Host         string       `mapstructure:"host" json:"host"`
	Tags         []string     `mapstructure:"tags" json:"tags"`
	Port         int          `mapstructure:"port" json:"port"`
	OrderSrvInfo OrderSrvInfo `mapstructure:"order_srv" json:"order_srv"`
	JWTInfo      JWTConfig    `mapstructure:"jwt" json:"jwt"`
	AliSmsInfo   AliSmsConfig `mapstructure:"sms" json:"sms"`
	RedisInfo    RedisConfig  `mapstructure:"redis" json:"redis"`
	ConsulInfo   ConsulConfig `mapstructure:"consul" json:"consul"`
	AliPay       AliPay       `mapstructure:"AliPay" json:"AliPay"`
}

type NacosConfig struct {
	Host      string `mapstructure:"host"`
	Port      uint64 `mapstructure:"port"`
	Namespace string `mapstructure:"namespace"`
	User      string `mapstructure:"user"`
	Password  string `mapstructure:"password"`
	DataId    string `mapstructure:"dataid"`
	Group     string `mapstructure:"group"`
}

type AliPay struct {
	KAppId        string `mapstructure:"kAppId" json:"kAppId"`
	KPrivateKey   string `mapstructure:"kPrivateKey" json:"kPrivateKey"`
	KServerPort   string `mapstructure:"kServerPort" json:"kServerPort"`
	KServerDomain string `mapstructure:"kServerDomain" json:"kServerDomain"`
}
